**************************************************************************
**************************************************************************
Tables for: "Cadasters and Economic Growth: A Long-Run Cross-Country Panel" 
by D'Arcy, Nistotskaya & Olsson, JPE, November, 2023
**************************************************************************



*************SECTION 3****************************************************


***Table 1: Effects of Democracy and Cadaster on GDP per capita, 1960-2010 
*Note: Income levels panel regression and calculation of long-run effect (nlcom). Partial replication of Table 2 and GDP data from ANNR (2019), adding Conley and HAC-consistent standard errors (acreg) using a radius of 2000 km*

use "${datapath}\cadaster_anrr.dta", clear

sort wbcode2 year
xtset wbcode2 year


*C1: Replication of T2, C1 in ANNR, adding Conley HAC standard errors*/
qui xtreg y dem l.y i.year, fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t1.tex", replace ct(GDPpc) keep(dem l.y)
*nlcom (Longrun: _b[dem]/(1-_b[L.y])), post
*acreg y dem lag_y i.year i.wbcode2, spatial hac id(wbcode) time(year) latitude(LAT) longitude(LON) dist(2000) lagcut(2) 

*C2: Replication of T2, C3 (main) in ANNR*/
qui xtreg y dem l(1/4).y i.year, fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t1.tex", append ct(GDPpc) keep(dem l(1/4).y)
*nlcom (Longrun: _b[dem]/(1-_b[L.y]-_b[L2.y]-_b[L3.y]-_b[L4.y])), post
*acreg y dem lag_y lag2_y lag3_y lag4_y i.year i.wbcode2, spatial hac id(wbcode) time(year) latitude(LAT) longitude(LON) dist(2000) lagcut(2) 

*C3: Replication with same sample
qui xtreg y dem l(1/4).y i.year if cad!=., fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t1.tex", append ct(GDPpc) keep(dem l(1/4).y)
*nlcom (Longrun: _b[dem]/(1-_b[L.y]-_b[L2.y]-_b[L3.y]-_b[L4.y])), post
*acreg y dem lag_y lag2_y lag3_y lag4_y yy* i.wbcode2 if cad!=., spatial hac id(wbcode) time(year) latitude(LAT) longitude(LON) dist(2000) lagcut(2) 

*C4: Introducing our cadaster variable (cad)*/
qui xtreg y cad l.y i.year, fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t1.tex", append ct(GDPpc) keep(cad l.y)
*nlcom (Longrun: _b[cad]/(1-_b[L.y])), post
*acreg y cad lag_y i.year i.wbcode2, spatial hac id(wbcode) time(year) latitude(LAT) longitude(LON) dist(2000) lagcut(2) 

*C5: */
qui xtreg y cad l(1/4).y i.year, fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t1.tex", append ct(GDPpc) keep(cad l(1/4).y)
*nlcom (Longrun: _b[cad]/(1-_b[L.y]-_b[L2.y]-_b[L3.y]-_b[L4.y])), post
*acreg y cad lag_y lag2_y lag3_y lag4_y i.year i.wbcode2, spatial hac id(wbcode) time(year) latitude(LAT) longitude(LON) dist(2000) lagcut(2) 

*C6: Horse race */
qui xtreg y dem cad l.y i.year, fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t1.tex", append ct(GDPpc) keep(dem cad l.y)
*acreg y dem cad lag_y i.year i.wbcode2, spatial hac id(wbcode) time(year) latitude(LAT) longitude(LON) dist(2000) lagcut(2)

*C7: Horse race */
qui xtreg y dem cad l(1/4).y i.year, fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t1.tex", append ct(GDPpc) keep(dem cad l(1/4).y)
*acreg y dem cad lag_y lag2_y lag3_y lag4_y i.year i.wbcode2, spatial hac id(wbcode) time(year) latitude(LAT) longitude(LON) dist(2000) lagcut(2) 

*C8: Interaction */
qui xtreg y dem cad dem_cad l.y i.year, fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t1.tex", append ct(GDPpc) keep(dem cad dem_cad l.y)
*acreg y dem cad dem_cad lag_y i.year i.wbcode2, spatial hac id(wbcode) time(year) latitude(LAT) longitude(LON) dist(2000) lagcut(2) 
	
*C9: Interaction */
qui xtreg y dem cad dem_cad l(1/4).y i.year, fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t1.tex", append ct(GDPpc) keep(dem cad dem_cad l(1/4).y)
*acreg y dem cad dem_cad lag_y lag2_y lag3_y lag4_y i.year i.wbcode2, spatial hac id(wbcode) time(year) latitude(LAT) longitude(LON) dist(2000) lagcut(2) 

	
	
	
**********************************************************************************	
***Table 2: Effects of Democracy and Cadaster on the growth rate of GDP per capita, 1960-2010
*Note: Replication of Table 3 and data from ANRR (2019), including Conley and HAC-consistent standard errors: Growth regressions***	
	
use "${datapath}\cadaster_anrr.dta", clear

sort wbcode2 year
xtset wbcode2 year


*C1: Replication of T3, C1 in ANRR*/
qui xtreg d.y dem l.d.y i.year, fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t2.tex", replace ct(Growth) keep(dem l.d.y)
*acreg d_y dem l_d_y i.year i.wbcode2, spatial hac id(wbcode) time(year) latitude(LAT) longitude(LON) dist(2000) lagcut(2) 
	
*C2: Replication of T3, C3 (main) in ANRR*/
qui xtreg d.y dem l(1/4).d.y i.year, fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t2.tex", append ct(Growth) keep(dem l(1/4).d.y)
*acreg d_y dem l_d_y  l2_d_y l3_d_y l4_d_y i.year i.wbcode2, spatial hac id(wbcode) time(year) latitude(LAT) longitude(LON) dist(2000) lagcut(2) 

*C3: Replication with same sample
qui xtreg d.y dem l(1/4).d.y i.year if cad!=., fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t2.tex", append ct(Growth) keep(dem l(1/4).d.y)
*acreg d_y dem l_d_y  l2_d_y l3_d_y l4_d_y i.year i.wbcode2 if cad!=., spatial hac id(wbcode) time(year) latitude(LAT) longitude(LON) dist(2000) lagcut(2) 

*C4: Introducing cadaster1*/
qui xtreg d.y cad l.d.y i.year, fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t2.tex", append ct(Growth) keep(cad l.d.y)
*acreg d_y cad l_d_y i.year i.wbcode2, spatial hac id(wbcode) time(year) latitude(LAT) longitude(LON) dist(2000) lagcut(2) 
	
*C5: */
qui xtreg d.y cad l(1/4).d.y i.year, fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t2.tex", append ct(Growth) keep(cad l(1/4).d.y)
*acreg d_y cad l_d_y l2_d_y l3_d_y l4_d_y i.year i.wbcode2, spatial hac id(wbcode) time(year) latitude(LAT) longitude(LON) dist(2000) lagcut(2) 

*C6: Horse race */
qui xtreg d.y dem cad l.d.y i.year, fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t2.tex", append ct(Growth) keep(dem cad l.d.y)
*acreg d_y dem cad l_d_y i.year i.wbcode2, spatial hac id(wbcode) time(year) latitude(LAT) longitude(LON) dist(2000) lagcut(2)

*C7: Horse race */
qui xtreg d.y dem cad l(1/4).d.y i.year, fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t2.tex", append ct(Growth) keep(dem cad l(1/4).d.y)
*acreg d_y dem cad l_d_y l2_d_y l3_d_y l4_d_y i.year i.wbcode2, spatial hac id(wbcode) time(year) latitude(LAT) longitude(LON) dist(2000) lagcut(2) 

*C8: Interaction */
qui xtreg d.y dem cad dem_cad l.d.y i.year, fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t2.tex", append ct(Growth) keep(dem cad dem_cad l.d.y)
*acreg d_y dem cad dem_cad l_d_y i.year i.wbcode2, spatial hac id(wbcode) time(year) latitude(LAT) longitude(LON) dist(2000) lagcut(2)
	
*C9: Interaction */
qui xtreg d.y dem cad dem_cad l(1/4).d.y i.year, fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t2.tex", append ct(Growth) keep(dem cad dem_cad l(1/4).d.y)
*acreg d_y dem cad dem_cad l_d_y l2_d_y l3_d_y l4_d_y i.year i.wbcode2, spatial hac id(wbcode) time(year) latitude(LAT) longitude(LON) dist(2000) lagcut(2) 

	


**************************************************************************************
***Table 3: Effect of Cadaster on GDP per capita through history, 1252-2015
*Note: This table uses long-run data on GDP per capita (y2) from Bolt and van Zanden (MPD, 2020)
	
use "${datapath}/cadaster_main.dta", clear

sort ccode year	
xtset ccode year


*C1: 1252-*/
qui xtreg y2 cad L.y2  i.year, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_t3.tex", replace ct(1252-) keep(cad L.y)
	
*C2: 1252-*/
qui xtreg y2 cad L(1/4).y2  i.year, fe cluster(ccode)	
	outreg2 using "${outpath}\cadaster_t3.tex", append ct(1252-) keep(cad L(1/4).y)	

*C3: 1900-*/	
qui xtreg y2 cad L.y2  i.year if year>=1900, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_t3.tex", append ct(1900-) keep(cad L.y)	

*C4: 1900-*/
qui xtreg y2 cad L(1/4).y2 i.year if year>=1900, fe cluster(ccode)	
	outreg2 using "${outpath}\cadaster_t3.tex", append ct(1900-) keep(cad L(1/4).y)		

*C5: 1950-*/	
qui xtreg y2 cad L.y2  i.year if year>=1950, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_t3.tex", append ct(1950-) keep(cad L.y)	
	
*C6: 1950-*/	
qui xtreg y2 cad L(1/4).y2  i.year if year>=1950, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_t3.tex", append ct(1950-) keep(cad L(1/4).y)	
	
 
*Additional info discussed in text: Mean change in Cadaster * 
sum cad_reform if (cad_reform>0.1|cad_reform<-0.1)&cad_reform!=0, d
tab cad_reform if (cad_reform>0.1|cad_reform<-0.1)&cad_reform!=0

*Relationship before 1900?
xtreg y2 cad L.y2 i.year if year<=1900, fe cluster(ccode)
xtreg y2 cad L(1/4).y2 i.year if year<=1900, fe cluster(ccode)
*There is no relationship at all between cadasters and increases in GDP levels before 1900! 



*************************************************************************************************
***Table 4: Effect of Cadaster on the growth rate of GDP per capita (g2) in the UK, France, Sweden, Italy, the Netherlands and Portugal, all available years
*Note: The table investigates the relationship between growth and cadasters within selected countries. Newey-West standard errors presented for UK, Sweden and Italy without any hiatus in series.

use "${datapath}\cadaster_main.dta", clear

sort ccode year	
xtset ccode year

*C1: UK
qui reg g2 cad L(1/4).g2 trend if cname=="United Kingdom", r
	outreg2 "${outpath}\cadaster_t4.tex", replace ct(UK, 1252-) keep(cad) nocons addtext(Lags, 4, Trend, Yes)

*C2: France 
qui reg g2 cad L(1/4).g2 trend if cname=="France", r
	outreg2 using "${outpath}\cadaster_t4.tex", append ct(France, 1280-) keep(cad) nocons addtext(Lags, 4, Trend, Yes)

*C3: Sweden
qui reg g2 cad L(1/4).g2 trend if cname=="Sweden", r
	outreg2 using "${outpath}\cadaster_t4.tex", append ct(Sweden, 1300-) keep(cad) nocons addtext(Lags, 4, Trend, Yes)

*C4: Italy
qui reg g2 cad L(1/4).g2 trend if cname=="Italy", r
	outreg2 using "${outpath}\cadaster_t4.tex", append ct(Italy, 1315-) keep(cad) nocons addtext(Lags, 4, Trend, Yes)	

*C5: Netherlands
qui reg g2 cad L(1/4).g2 trend if cname=="Netherlands", r
	outreg2 using "${outpath}\cadaster_t4.tex", append ct(Netherlands, 1348-) keep(cad) nocons addtext(Lags, 4, Trend, Yes)

*C6: Portugal
qui reg g2 cad L(1/4).g2 trend if cname=="Portugal", r
	outreg2 using "${outpath}\cadaster_t4.tex", append ct(Portugal, 1348-) keep(cad) nocons addtext(Lags, 4, Trend, Yes)


*Additional Newey-West standard errors where available (France and Netherlands have hiatus)*
newey g2 cad L(1/4).g2 trend if cname=="United Kingdom", lag(4)
newey g2 cad L(1/4).g2 trend if cname=="Sweden", lag(4)
newey g2 cad L(1/4).g2 trend if cname=="Italy", lag(4)



*********************************************************************************************
***Table 5: Effect of Cadastral Reforms on Farm Density and Land concentration in West and East Provinces of the 19th Century Kingdom of Prussia
*Note: This table uses within-country data based on iPEHD (2021) from Kingdom of Prussia during 1808-1882

use "${datapath}/cadaster_prussia.dta", clear

*CI: Farm density in 1858 on Cadaster 1808
qui reg ln_farms_area_1858 cadaster_1808 ln_farms_area_1816 i.rb_id, r
	outreg2 using "${outpath}\cadaster_t5.tex", replace ct(1858) keep(cadaster_1808 ln_farms_area_1816) addtext(District FE, YES)

*C2: Farm density in 1882 on Cadaster 1867	
qui reg ln_farms_area_1882 cadaster_1867 ln_farms_area_1858  i.rb_id, r
	outreg2 using "${outpath}\cadaster_t5.tex", append ct(1882) keep(cadaster_1867 ln_farms_area_1858) addtext(District FE, YES)

*C3: Impact of cadaster in 1808 on land concentration in 1849, no controls
qui reg lc_1849 cadaster_1808 lc_1816 , r
	outreg2 using "${outpath}\cadaster_t5.tex", append ct(1849) keep(cadaster_1808 ln_farms_area_1816) addtext(District FE, NO)
	
*C4: Impact of cadaster in 1808 on land concentration in 1849, with controls
qui reg lc_1849 cadaster_1808 lc_1816 soil_loam_pc indu_pc1849 pop_urban_pc1849 land_pc1849 railaccess1849, r
	outreg2 using "${outpath}\cadaster_t5.tex", append ct(1849) addtext(District FE, YES)
	
*C5: Impact of cadaster in 1808 on land concentration in 1864, no controls
qui reg lc_1864 cadaster_1808 lc_1816, r
	outreg2 using "${outpath}\cadaster_t5.tex", append ct(1864) keep(cadaster_1808 ln_farms_area_1816) addtext(District FE, NO)
	
*C6: Impact of cadaster in 1808 on land concentration in 1864, with controls
qui reg lc_1864 cadaster_1808 lc_1816 soil_loam_pc indu_pc1864 pop_urban_pc1864 land_pc1864 railaccess1864, r
	outreg2 using "${outpath}\cadaster_t5.tex", append ct(1864) addtext(District FE, YES)

	

****************SECTION 4**************************************************

*************************************************************************************
***Table 6: Effect of Cadaster on Transaction Costs, 2005-2015***
*Note: This table investigates a plausible mechanism and uses data on transaction costs from World Bank (2022)

use "${datapath}\cadaster_main.dta", clear

sort ccode year	
xtset ccode year


***Register procedures***
qui xtreg registerprocedures cad, fe cluster(ccode) 
	outreg2 using "${outpath}\cadaster_t6.tex", replace ct(Proc) keep(cad) addtext(Year FE, NO, y lags, 0, M lags, 0)
	
qui xtreg registerprocedures cad l.registerprocedures l.y2 i.year, fe cluster(ccode) 
	outreg2 using "${outpath}\cadaster_t6.tex", append ct(Proc) keep(cad) addtext(Year FE, YES, y lags, 1, M lags, 1)
	
***Register time***
qui xtreg registertime cad, fe cluster(ccode) 
	outreg2 using "${outpath}\cadaster_t6.tex", append ct(Time) keep(cad) addtext(Year FE, NO, y lags, 0, M lags, 0)
	
qui xtreg registertime cad l.registertime l.y2 i.year, fe cluster(ccode) 
	outreg2 using "${outpath}\cadaster_t6.tex", append ct(Time) keep(cad) addtext(Year FE, YES, y lags, 1, M lags, 1)
	
***Register cost***
qui xtreg registercost cad, fe cluster(ccode) 
	outreg2 using "${outpath}\cadaster_t6.tex", append ct(Cost) keep(cad) addtext(YES, Year FE, NO, y lags, 0, M lags, 0)
	
qui xtreg registercost cad l.registercost l.y2 i.year, fe cluster(ccode) 
	outreg2 using "${outpath}\cadaster_t6.tex", append ct(Cost) keep(cad) addtext(Year FE, YES, y lags, 1, M lags, 1)


*Add info in table about means in dependent variables
mean registerprocedures registertime registercost

	

	
*********************************************************************************************	
***Table 7: Effect of Cadaster on Tax Revenue, 1980-2015 and 1960-2015***
*Note: This table combines tax data from UNU-WIDER (2021) and ANRR with our standard income and cadaster data

use "${datapath}/cadaster_main.dta", clear

sort ccode year	
xtset ccode year

*C1: Property tax revenue as a share of GDP
qui xtreg tax_property cad l.tax_property l.y2  i.year if year>=1950, fe cluster(ccode) 
	outreg2 using "${outpath}\cadaster_t7.tex", replace ct(Prop tax) keep(cad) addtext(y lags, 1, M lags, 1)

*C2: Direct tax revenue as a share of GDP (excl. social contributions and natural resources)
qui xtreg tax_dir cad l.tax_dir l.y2  i.year if year>=1950, fe cluster(ccode) 
 	outreg2 using "${outpath}\cadaster_t7.tex", append ct(Dir tax) keep(cad) addtext(y lags, 1, M lags, 1)

*C3: Indirect tax revenue as a share of GDP
qui xtreg tax_indirect cad l.tax_indirect l.y2  i.year if year>=1950, fe cluster(ccode) 
 	outreg2 using "${outpath}\cadaster_t7.tex", append ct(Indir tax) keep(cad) addtext(y lags, 1, M lags, 1)

*C4: Indirect tax revenue as a share of GDP
qui xtreg tax_indirect cad l(1/4).tax_indirect l(1/4).y2  i.year if year>=1950, fe cluster(ccode) 
 	outreg2 using "${outpath}\cadaster_t7.tex", append ct(Indir tax) keep(cad) addtext(y lags, 4, M lags, 4)
	
*C5: Tax revenue (excl nat. res. and soc. contrib.) as a share of GDP
qui xtreg tax_excl cad l.tax_excl l.y2  i.year if year>=1950, fe cluster(ccode) 
 	outreg2 using "${outpath}\cadaster_t7.tex", append ct(Tax excl) keep(cad) addtext(y lags, 1, M lags, 1)
	
*C6: Tax revenue (excl nat. res. and soc. contrib.) as a share of GDP 
qui xtreg tax_excl cad l(1/4).tax_excl l(1/4).y2  i.year if year>=1950, fe cluster(ccode) 
 	outreg2 using "${outpath}\cadaster_t7.tex", append ct(Tax excl) keep(cad) addtext(y lags, 4, M lags, 4)

*Means reported in table
mean tax_property tax_dir tax_indirect tax_excl
	

use "${datapath}/cadaster_anrr.dta", clear

sort wbcode year
xtset

*C7: Taxes as a share of GDP (ANNR, 2019)
qui xtreg taxratio_100 cad l.taxratio_100 l.y i.year, fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t7.tex", append ct(Tax ratio) keep(cad) addtext(y lags, 1, M lags, 1)
	
*C8: Taxes as a share of GDP (ANNR, 2019)
qui xtreg taxratio_100 cad l(1/4).taxratio_100 l(1/4).y i.year, fe cluster(wbcode)
	outreg2 using "${outpath}\cadaster_t7.tex", append ct(Tax excl) keep(cad) addtext(y lags, 4, M lags, 4)


*Means reported in table
mean taxratio_100
	







